Xavier Claessens [Sat, 17 Oct 2020 13:50:40 +0000 (09:50 -0400)]
meson: Use feature options for media and print backends
This gracefully disable ffmpeg, gstreamer, cups and cloudprint optional
dependencies when they are not available, while still giving full
control to distributors using -Dauto_features=enabled.
Xavier Claessens [Fri, 16 Oct 2020 21:57:48 +0000 (17:57 -0400)]
meson: Make vulkan and xinerama optional deps default to 'auto'
It is nicer for contributors to have a build that works by default.
Distributors should be using -Dauto_features=enabled to get ride of
automagic options.
Xavier Claessens [Fri, 16 Oct 2020 21:57:20 +0000 (17:57 -0400)]
meson: Simplify xinerama dependency check
Xavier Claessens [Fri, 16 Oct 2020 21:26:15 +0000 (17:26 -0400)]
meson: Simplify how cairo dependencies are checked
There is no reason to fallback to find_library for cairo and still rely
on pkg-config for all other dependencies, and just when using MSVC. When
building and pkg-config is not working it is preferable to fallback to a
subproject just like for all other dependencies.
Also add cairo.wrap now that meson support has been merged upstream.
Matthias Clasen [Thu, 15 Oct 2020 04:41:52 +0000 (00:41 -0400)]
3.99.3
Matthias Clasen [Fri, 16 Oct 2020 03:01:38 +0000 (03:01 +0000)]
Merge branch 'win32.modal' into 'master'
GDK/Win32: Fix modal window handling and window stacking (for GTK4)
See merge request GNOME/gtk!2675
Matthias Clasen [Fri, 16 Oct 2020 02:39:01 +0000 (22:39 -0400)]
docs: Expand opacity docs
Explain the situation with popovers and opacity.
Fixes: #3246
Matthias Clasen [Fri, 16 Oct 2020 02:19:08 +0000 (02:19 +0000)]
Merge branch 'a11y-action-fixes' into 'master'
A11y action fixes
See merge request GNOME/gtk!2703
Chun-wei Fan [Thu, 8 Oct 2020 07:55:29 +0000 (15:55 +0800)]
gdk/Win32: Fix mouse pointer capture
Call SetCapture() explcitly for the (new) modal window so that we make the
modal window respond to mouse input, and also call SetCapture() to the parent
of the transient window that we are destroying so that mouse input capture is
returned to the parent window.
This attempts to fix the following:
* Upon creating a new modal window, the new modal window does not receive
pointer input unless one switches to another program and back
* Upon closing a transient window, the parent window that activated the
transient window does not receive pointer input unless one switches to
another and back
Matthias Clasen [Fri, 16 Oct 2020 02:03:16 +0000 (02:03 +0000)]
Merge branch 'fix-listbox-selection' into 'master'
Revert "listbox: Activate single-click rows if n_press >= 1"
Closes #3263
See merge request GNOME/gtk!2704
Руслан Ижбулатов [Tue, 6 Oct 2020 08:10:47 +0000 (16:10 +0800)]
GDK W32: Remove stacking functions
Stacking functions enforce non-native stacking behaviour that is
mostly unneeded, and doing so introduces bugs and complicates things.
Руслан Ижбулатов [Thu, 8 Oct 2020 04:46:06 +0000 (12:46 +0800)]
Revert "GDK W32: Use SWP_NOOWNERZORDER everywhere it can be applied"
This reverts commit
fc2008f2.
Turns out, we *don't* have code to maintain Z-order. Restacking
code is not doint that, it just enforces a few weird Z-order-related
behaviours.
Chun-wei Fan [Tue, 6 Oct 2020 07:06:47 +0000 (15:06 +0800)]
GDK/Win32: Fix modal window handling
Make sure that we get the state of the modal window properly, and send out the
corresponding notification signals.
This will ensure that we do not try to activate windows that should have become
inactivated due to it opening modal windows and render the program unresponsive
because we are not activating the correct window that is due to receive user
input.
Matthias Clasen [Fri, 16 Oct 2020 01:45:34 +0000 (21:45 -0400)]
Revert "listbox: Activate single-click rows if n_press >= 1"
This reverts commit
e669433cde60068099c7c03235475673d0ed7db4.
This broke selection in several listbox examples.
Fixes: #3263
Matthias Clasen [Fri, 16 Oct 2020 01:29:37 +0000 (21:29 -0400)]
atspi: Properly filter out parent actions
We only want to show relevant, local actions for
widgets, but _gtk_widget_get_action_muxer() will
return the muxer of a parent widget (all the way
up to the toplevel), if the widget does not have
any actions of its own. To detect this situation,
compare what _gtk_widget_get_action_muxer() returns
for the parent widget, and act accordingly.
Matthias Clasen [Fri, 16 Oct 2020 01:28:11 +0000 (21:28 -0400)]
atspi: Fix a thinko in action filtering
get_action_at_index() was trying hard to find out
which actions are valid, only to then return the
invalid ones anyway.
Matthias Clasen [Fri, 16 Oct 2020 00:13:23 +0000 (00:13 +0000)]
Merge branch 'a11y/atspi-action' into 'master'
A11y/atspi action
See merge request GNOME/gtk!2699
Emmanuele Bassi [Thu, 15 Oct 2020 18:21:27 +0000 (19:21 +0100)]
a11y: Add atspi.Action for GtkPasswordEntry
Emmanuele Bassi [Thu, 15 Oct 2020 20:18:35 +0000 (21:18 +0100)]
Allow toggling the password entry visibility programmatically
We are going to need a method for toggling the visibility from the
accessibility layer.
Emmanuele Bassi [Thu, 15 Oct 2020 18:15:12 +0000 (19:15 +0100)]
a11y: Add atspi.Action for GtkEntry
We need to handle the activation on the entry widget, as well as the
activation of the primary and secondary icons.
Emmanuele Bassi [Thu, 15 Oct 2020 20:13:19 +0000 (21:13 +0100)]
Add GtkEntry icon signals emitter
We need a (private) way to programmatically trigger the activation of
the entry's icons, so that we can call it from the accessibility layer.
Emmanuele Bassi [Thu, 15 Oct 2020 15:05:43 +0000 (16:05 +0100)]
a11y: Add atspi.Action for GtkExpander
Emmanuele Bassi [Thu, 15 Oct 2020 14:55:31 +0000 (15:55 +0100)]
a11y: De-duplicate some action code
The widgets with hard coded actions should share more code, instead of
copy-pasting it.
Emmanuele Bassi [Wed, 14 Oct 2020 17:42:00 +0000 (18:42 +0100)]
a11y: Special case buttons and switches
These widgets have specific actions.
Emmanuele Bassi [Wed, 14 Oct 2020 14:10:03 +0000 (15:10 +0100)]
Initial ATSPI Action implementation for widget
Use the actions from the GtkActionMuxer of each widget to populate the
list of actions available.
Matthias Clasen [Thu, 15 Oct 2020 21:00:44 +0000 (21:00 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
Closes #3245
See merge request GNOME/gtk!2702
Matthias Clasen [Thu, 15 Oct 2020 20:33:35 +0000 (16:33 -0400)]
Fix compiler warnings
Matthias Clasen [Thu, 15 Oct 2020 20:18:36 +0000 (16:18 -0400)]
actionmuxer: Make it possible to enumerate local actions
This will be useful for exposing actions via the
AT-SPI Actions interface.
Update all callers.
Matthias Clasen [Thu, 15 Oct 2020 20:05:02 +0000 (16:05 -0400)]
spinbutton: Hide the buttons from accessibility
The buttons here are not really buttons (the action
is not tied to the "clicked" signal), so triggering
the buttons via a11y does not have the expected effect.
And we expose the Value interface that ATs can use
to set the value.
Matthias Clasen [Thu, 15 Oct 2020 19:16:06 +0000 (15:16 -0400)]
emojicompletion: Avoid a memory overrun
Don't read beyond the beginning of the string.
Fixes: #3245
Matthias Clasen [Thu, 15 Oct 2020 18:41:40 +0000 (14:41 -0400)]
gtk-demo: Fix some issues with the multi view demo
The nested window was not modal, causing it to be
inoperable. And the nested views within were all
shrunk down to nothingness. Give them some width.
Fixes: #3257
Matthias Clasen [Thu, 15 Oct 2020 17:36:47 +0000 (17:36 +0000)]
Merge branch 'a11y-list-view-selection-fixes' into 'master'
atspi: Add fold markers
See merge request GNOME/gtk!2701
Matthias Clasen [Thu, 15 Oct 2020 17:09:13 +0000 (13:09 -0400)]
atspi: Add fold markers
This makes it much easier to navigate in these
multi-implementation files.
Matthias Clasen [Thu, 15 Oct 2020 17:10:00 +0000 (17:10 +0000)]
Merge branch 'a11y-list-view-selection-fixes' into 'master'
A11y list view selection fixes
See merge request GNOME/gtk!2700
Matthias Clasen [Thu, 15 Oct 2020 16:55:19 +0000 (16:55 +0000)]
Merge branch 'ebassi/for-master' into 'master'
GdkWayland API cleanups
Closes #3249
See merge request GNOME/gtk!2688
Matthias Clasen [Thu, 15 Oct 2020 16:46:52 +0000 (12:46 -0400)]
atspi: Implement Selection more correctly
The Selection interface is defined in terms of child
positions, so we need to always translate from that
to model positions if we want to use the selection
model apis.
Matthias Clasen [Thu, 15 Oct 2020 16:19:58 +0000 (12:19 -0400)]
Remove debug spew
Matthias Clasen [Thu, 15 Oct 2020 16:00:00 +0000 (12:00 -0400)]
wayland: Make gdk_wayland_device_pad_set_feedback private
It is not a generally useful api, and awkwardly named.
Matthias Clasen [Thu, 15 Oct 2020 14:08:03 +0000 (10:08 -0400)]
docs: Explain the symbolic icon paintable situation
Add a paragraph to the migration guide that explains
how to properly render symbolic GtkIconPaintables.
Also mention this in the GtkIconPaintable docs.
There's a reason you can't spell 'paintable' without
'pain'...
Matthias Clasen [Thu, 15 Oct 2020 14:59:24 +0000 (14:59 +0000)]
Merge branch 'a11y/atspi' into 'master'
A11y/atspi
See merge request GNOME/gtk!2698
Matthias Clasen [Thu, 15 Oct 2020 14:50:54 +0000 (14:50 +0000)]
Merge branch 'clipboard-emo' into 'master'
gtk-demo: Fix up image handling in the clipboard demo
Closes #3252
See merge request GNOME/gtk!2697
Matthias Clasen [Thu, 15 Oct 2020 14:25:55 +0000 (14:25 +0000)]
Merge branch 'wip/wayland-dont-respond-to-destroyed-surface-configure' into 'master'
wayland/surface: Clear has_uncommitted_ack_configure when hiding
Closes #3262
See merge request GNOME/gtk!2696
Matthias Clasen [Thu, 15 Oct 2020 13:41:47 +0000 (13:41 +0000)]
Merge branch 'meson-epoxy-subproject' into 'master'
meson: Fix error when epoxy is a subproject on Windows
See merge request GNOME/gtk!2695
Matthias Clasen [Thu, 15 Oct 2020 13:16:17 +0000 (09:16 -0400)]
gtk-demo: Fix up image handling in the clipboard demo
Using GtkIconPaintable+GtkPicture is not good for symbolic
icons - they don't get properly colored that way. So change
things around to use the icon name if we have it.
Fixes: #3252
Jonas Ådahl [Thu, 15 Oct 2020 12:52:57 +0000 (14:52 +0200)]
wayland/surface: Clear has_uncommitted_ack_configure when hiding
The 'has_uncommitted_ack_configure' state was added to make sure we're
responding to 'xdg_surface.configure' events with
'xdg_surface.ack_configure' requests, as is necessary according to spec.
What we didn't do was to clear this state when hiding, meaning that if
we hid the surface after a configure event, but before the frame
finished and we processed the 'has_uncommitted_ack_configure', we'd try
to acknowledge the surface configuration after having destroyed the
surface.
Closes: #3262
Matthias Clasen [Thu, 15 Oct 2020 12:35:06 +0000 (08:35 -0400)]
atspi: Implement Selection for list views
This implementation works for both GtkListView and
GtkGridView, and by extension, also for GtkColumnView
and GtkDropDown, since those just use a list view
internally.
Xavier Claessens [Wed, 14 Oct 2020 21:26:23 +0000 (17:26 -0400)]
meson: Fix error when epoxy is a subproject on Windows
epoxy_dep cannot be used in a configure time check when it comes from a
subproject. Use variables set in pc file instead.
This requires https://github.com/anholt/libepoxy/pull/231.
Matthias Clasen [Thu, 15 Oct 2020 04:09:06 +0000 (00:09 -0400)]
columnview: Set accessible roles
Use the TREE_GRID, ROW, COLUMN_HEADER and GRID_CELL roles
for the various widgets involved in a GtkColumnView. To
enable this, we subclass GtkListView for the internal
list in the column view.
Matthias Clasen [Thu, 15 Oct 2020 03:34:51 +0000 (23:34 -0400)]
listview: Set accessible roles
Use the LIST and LIST_ITEM roles for GtkListView
and its children. Use the GRID and GRID_CELL roles
for GtkGridView and its children.
Matthias Clasen [Thu, 15 Oct 2020 02:27:09 +0000 (22:27 -0400)]
Document accessible roles for stacks and notebooks
This was forgotten when I implemented the Tabs pattern.
Matthias Clasen [Thu, 15 Oct 2020 02:18:31 +0000 (22:18 -0400)]
flowbox: Set accessible roles
Use the GRID and GRID_CELL roles for GtkFlowBox
and GtkFlowBoxChild.
Matthias Clasen [Thu, 15 Oct 2020 02:16:00 +0000 (22:16 -0400)]
listbox: Set accessible roles
Use the LIST and LIST_ITEM roles for GtkListBox
and GtkListBoxRow.
Matthias Clasen [Thu, 15 Oct 2020 01:41:42 +0000 (01:41 +0000)]
Merge branch 'wip/chergert/fix-macos-popup-events' into 'master'
macos: fix popup motion and button event delivery
See merge request GNOME/gtk!2694
Matthias Clasen [Thu, 15 Oct 2020 01:41:06 +0000 (01:41 +0000)]
Merge branch 'wip/chergert/gdk-macos-fixes' into 'master'
macos: fix crash when displaying a context menu
See merge request GNOME/gtk!2693
Matthias Clasen [Thu, 15 Oct 2020 01:02:02 +0000 (21:02 -0400)]
atspi: Add some docs
Add a comment that explains a few of the more subtle
points of the Atspi context tree contstruction.
Matthias Clasen [Thu, 15 Oct 2020 00:52:33 +0000 (20:52 -0400)]
atspi: Implement Selection for notebook tabs
This is a bit different from the way things were done
in GTK 3 - we follow what was done for GtkStackSwitcher,
and make the tab bar carry the GTK_ACCESSIBLE_TAB_LIST
role, and implement Selection there.
Matthias Clasen [Wed, 14 Oct 2020 23:06:46 +0000 (19:06 -0400)]
notebook: Set accessible roles and properties
Set up the necessary roles, relations and properties
for the tab patterns. This parallels what we have done
for GtkStackSwitcher, and implements the Tabs pattern
as described in the ARIA authoring guidelines.
Matthias Clasen [Wed, 14 Oct 2020 23:05:36 +0000 (19:05 -0400)]
atspi: Don't crash on unnamed stack pages
GtkNotebook creates unnamed stack pages, and we should
not crash when that happens.
Matthias Clasen [Wed, 14 Oct 2020 22:37:14 +0000 (18:37 -0400)]
gizmo: Add a way to set accessible role
This will be used for some of the gizmo used
inside GtkNotebook.
Matthias Clasen [Wed, 14 Oct 2020 05:06:04 +0000 (01:06 -0400)]
atspi: Implement Selection for GtkStackSwitcher
Matthias Clasen [Wed, 14 Oct 2020 04:25:57 +0000 (00:25 -0400)]
stackswitcher: Set up relations and states
Set up a CONTROLS relation between each tab button
and its page, and update the SELECTED property of
the buttons to match their active state.
Matthias Clasen [Wed, 14 Oct 2020 04:18:02 +0000 (00:18 -0400)]
stackswitcher: Use the tablist and tab roles
Set the tablist role on the stackswitcher itself, and
the tab role on the buttons. This is another step towards
implementing the tabs pattern for GtkStack.
Matthias Clasen [Wed, 14 Oct 2020 04:16:23 +0000 (00:16 -0400)]
accessible: Avoid realizing the context prematurely
platform change is called from gtk_widget_set_focusable
which is likely to be called early on in init(). We don't
want to create an AT context that early if we can help
it, e.g. since it makes it impossible to override the
accessible-role with a construct property.
Matthias Clasen [Wed, 14 Oct 2020 03:44:50 +0000 (23:44 -0400)]
stack: Turn pages into accessibles
This requires some cleanup to remove assumptions
about accessibles being widgets in the backend,
and some code to navigate the tree with these
extra objects in between widgets.
The accessibles for stack pages have the role
GTK_ACCESSIBLE_ROLE_TAB_PANEL. This is the first
step towards implementing the tabs patterns
as described in the aria authoring guidelines
for GtkStack.
Christian Hergert [Wed, 14 Oct 2020 23:59:38 +0000 (16:59 -0700)]
macos: fix discover of surface under cursor
This was incorrectly reporting the toplevel surface instead of the
popup surface that was placed above it. This fixes event delivery
to popups for selecting menu items and more.
Christian Hergert [Wed, 14 Oct 2020 23:26:52 +0000 (16:26 -0700)]
macos: only emit popup-layout-changed after initial present
Otherwise we risk being re-entrant where GtkPopover will not have a
GdkPopupLayout causing other issues.
Christian Hergert [Wed, 14 Oct 2020 23:26:14 +0000 (16:26 -0700)]
macos: ensure we have access to a GdkMonitor
Matthias Clasen [Wed, 14 Oct 2020 23:04:03 +0000 (23:04 +0000)]
Merge branch 'wip/chergert/gdk-macos-fixes' into 'master'
macos: fix button release events outside of window during grabs
See merge request GNOME/gtk!2692
Christian Hergert [Wed, 14 Oct 2020 22:42:45 +0000 (15:42 -0700)]
macos: allow pointer release event outside surface coords
This helps with grab situations so that we can end it when releasing
the pointer buttons outside of the window coordinates.
Christian Hergert [Wed, 14 Oct 2020 22:31:29 +0000 (15:31 -0700)]
macos: break grabs after sending release event
Christian Hergert [Wed, 14 Oct 2020 21:08:23 +0000 (14:08 -0700)]
macos: dont send crossing events during grab
Fixes an issue where we can't drag scrollbars or text selections while
outside of the application window.
Matthias Clasen [Wed, 14 Oct 2020 19:10:11 +0000 (19:10 +0000)]
Merge branch 'wip/chergert/gdk-macos-fixes' into 'master'
GTK4: fix macos device state query for surfaces
See merge request GNOME/gtk!2690
Matthias Clasen [Wed, 14 Oct 2020 19:07:09 +0000 (15:07 -0400)]
Merge branch 'wip/baedert/for-master'
Leaving out the gboolean -> bool change.
Timm Bäder [Tue, 13 Oct 2020 07:58:40 +0000 (09:58 +0200)]
pixbufutils: Pass calculated height value along
Timm Bäder [Tue, 13 Oct 2020 07:56:48 +0000 (09:56 +0200)]
main: Make sure we don't leak axes
Mainly a change to appease the static analyzer
Timm Bäder [Tue, 13 Oct 2020 07:56:32 +0000 (09:56 +0200)]
infobar: Remove unused include
Timm Bäder [Tue, 13 Oct 2020 03:36:03 +0000 (05:36 +0200)]
overlay: Remove empty finalize implementation
Timm Bäder [Sun, 11 Oct 2020 18:11:39 +0000 (20:11 +0200)]
gtk4-demo: Add missing margin-bottom
This was setting margin-end twice
Timm Bäder [Sun, 11 Oct 2020 17:59:00 +0000 (19:59 +0200)]
gtk4-demo: Remove connection to removed signal
Timm Bäder [Sun, 11 Oct 2020 17:56:22 +0000 (19:56 +0200)]
stacksidebar: Fold some functions into their only callers
Timm Bäder [Sun, 11 Oct 2020 17:30:15 +0000 (19:30 +0200)]
stacksidebar: Set GtkListBox:show-separators
Instead of doing this ourselves
Timm Bäder [Sun, 11 Oct 2020 16:57:10 +0000 (18:57 +0200)]
frame: Remove need_resize logic
gtk_widget_set_parent() will queue a resize anyway.
Timm Bäder [Sun, 11 Oct 2020 10:21:54 +0000 (12:21 +0200)]
windowcontrols: gtk_widget_get_root() can return NULL
Timm Bäder [Sun, 11 Oct 2020 10:17:53 +0000 (12:17 +0200)]
windowcontrols: decoration-layout is nullable
Timm Bäder [Sun, 11 Oct 2020 09:58:11 +0000 (11:58 +0200)]
stylecontext: Remove some unnused includes
Timm Bäder [Sun, 11 Oct 2020 09:55:04 +0000 (11:55 +0200)]
snapshot: Refactor some device code
Make a bit clearer what this does.
Timm Bäder [Sun, 11 Oct 2020 09:51:19 +0000 (11:51 +0200)]
Remove unneeded gtkstylecontext.h includes
Timm Bäder [Sun, 11 Oct 2020 09:40:31 +0000 (11:40 +0200)]
stylecontext: Remove render_insertion_cursor()
This is unused and there already is a snapshot alternative.
Timm Bäder [Sun, 11 Oct 2020 08:26:25 +0000 (10:26 +0200)]
widget: Remove gtk_widget_list_devices() from private header
Timm Bäder [Sun, 11 Oct 2020 08:22:20 +0000 (10:22 +0200)]
window: Remove unused struct member
Timm Bäder [Sun, 11 Oct 2020 08:17:18 +0000 (10:17 +0200)]
widget: Slightly update opacity docs
Timm Bäder [Sat, 10 Oct 2020 18:20:38 +0000 (20:20 +0200)]
gl renderer: Fix private function name
It's a GskGLRenderer, not a GskGLRender
Timm Bäder [Sat, 10 Oct 2020 17:57:29 +0000 (19:57 +0200)]
gl renderer: Add more scale_x/scale_y code
We really need all of this to be aware of both dimensions of course...
Timm Bäder [Sat, 10 Oct 2020 17:50:21 +0000 (19:50 +0200)]
gl renderer: Remove two unused uniforms
Timm Bäder [Sat, 10 Oct 2020 17:39:33 +0000 (19:39 +0200)]
gl renderer: return empty texture for too small blurred nodes
Timm Bäder [Sat, 10 Oct 2020 17:03:02 +0000 (19:03 +0200)]
gl renderer: Use op builder to render flipped texture
Otherwise, we don't know about the uniform state
Timm Bäder [Sat, 10 Oct 2020 17:02:43 +0000 (19:02 +0200)]
showrendernode: Plug GOptionContext memory leak
Timm Bäder [Sat, 10 Oct 2020 16:40:03 +0000 (18:40 +0200)]
gl renderer: Remove unused parameter
Timm Bäder [Sat, 10 Oct 2020 15:17:43 +0000 (17:17 +0200)]
filechooserwidget: Cosmetics
Timm Bäder [Sat, 10 Oct 2020 15:13:50 +0000 (17:13 +0200)]
testfilechooser: Stop listening to ::selection-changed
Doesn't exist anymore.